/*
* ManageItem.java
*
* Created on 25-jul-2011, 8:37:58
*/
package totalpos;
import java.awt.Window;
import java.awt.event.KeyEvent;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;
import javax.swing.JFrame;
import javax.swing.JInternalFrame;
import javax.swing.JOptionPane;
import javax.swing.table.DefaultTableModel;
/**
*
* @author shidalgo
*/
public class ManageItem extends JInternalFrame implements Doer {
private List<Item> items;
private List<Item> toPrint = new ArrayList<Item>();
private List<Integer> quantToPrint = new ArrayList<Integer>();
public boolean isOk = false;
public Working workingFrame;
/** Creates new form ManageItem */
public ManageItem() {
initComponents();
System.out.println("[" + Shared.now() + "] " + this.getClass().getName() + " " + Shared.lineNumber() + " Constructor invocado");
updateAll();
}
private void updateItems(){
try {
System.out.println("[" + Shared.now() + "] " + this.getClass().getName() + " " + Shared.lineNumber() + " Actualizar articulos");
items = ConnectionDrivers.listItems(barCodeField.getText(),
codigoField.getText() , descriptionField.getText() , modeloField.getText() );
} catch (SQLException ex) {
MessageBox msb = new MessageBox(MessageBox.SGN_IMPORTANT, "Problemas con la base de datos.",ex);
msb.show(this);
this.dispose();
Shared.reload();
} catch (Exception ex) {
MessageBox msb = new MessageBox(MessageBox.SGN_IMPORTANT, "Problemas al listar los artículos.",ex);
msb.show(this);
this.dispose();
Shared.reload();
}
}
private void updateTable(){
System.out.println("[" + Shared.now() + "] " + this.getClass().getName() + " " + Shared.lineNumber() + " Actualizar tabla");
DefaultTableModel model = (DefaultTableModel) itemTable.getModel();
model.setRowCount(0);
for (Item item : items) {
String s[] = {item.getCode(),item.getDescription(),item.getModel(),Shared.df.format(Math.round(item.getLastPrice().plusIva().withDiscount(item.getDescuento()).getQuant())),item.getDescuento()+"",item.getCurrentStock()+""};
//System.out.println("Precio = " + Math.round(item.getLastPrice().plusIva().withDiscount(item.getDescuento()).getQuant())+"");
model.addRow(s);
}
}
/** This method is called from within the constructor to
* initialize the form.
* WARNING: Do NOT modify this code. The content of this method is
* always regenerated by the Form Editor.
*/
@SuppressWarnings("unchecked")
// <editor-fold defaultstate="collapsed" desc="Generated Code">//GEN-BEGIN:initComponents
private void initComponents() {
jLabel1 = new javax.swing.JLabel();
filterPanel = new javax.swing.JPanel();
codigoField = new javax.swing.JTextField();
codigoLabel = new javax.swing.JLabel();
jLabel2 = new javax.swing.JLabel();
jLabel3 = new javax.swing.JLabel();
modeloField = new javax.swing.JTextField();
descriptionField = new javax.swing.JTextField();
jLabel4 = new javax.swing.JLabel();
barCodeField = new javax.swing.JTextField();
imagePanel = new javax.swing.JPanel();
imageLabel = new javax.swing.JLabel();
jPanel2 = new javax.swing.JPanel();
printLabels = new javax.swing.JButton();
jScrollPane2 = new javax.swing.JScrollPane();
stickerTable = new javax.swing.JTable();
deleteAll = new javax.swing.JButton();
deleteItem = new javax.swing.JButton();
jPanel3 = new javax.swing.JPanel();
jScrollPane1 = new javax.swing.JScrollPane();
itemTable = new javax.swing.JTable();
addSticker = new javax.swing.JButton();
addQuant1 = new javax.swing.JButton();
clearFields = new javax.swing.JButton();
setClosable(true);
setIconifiable(true);
setMaximizable(true);
setResizable(true);
setTitle("Artículos");
setMinimumSize(new java.awt.Dimension(739, 580));
addMouseListener(new java.awt.event.MouseAdapter() {
public void mouseReleased(java.awt.event.MouseEvent evt) {
formMouseReleased(evt);
}
});
addComponentListener(new java.awt.event.ComponentAdapter() {
public void componentResized(java.awt.event.ComponentEvent evt) {
formComponentResized(evt);
}
});
addMouseMotionListener(new java.awt.event.MouseMotionAdapter() {
public void mouseMoved(java.awt.event.MouseEvent evt) {
formMouseMoved(evt);
}
});
jLabel1.setFont(new java.awt.Font("Courier New", 1, 18));
jLabel1.setText("Artículos");
jLabel1.setName("jLabel1"); // NOI18N
filterPanel.setBorder(javax.swing.BorderFactory.createTitledBorder(null, "Filtros", javax.swing.border.TitledBorder.DEFAULT_JUSTIFICATION, javax.swing.border.TitledBorder.DEFAULT_POSITION, new java.awt.Font("Courier New", 0, 11))); // NOI18N
filterPanel.setName("filterPanel"); // NOI18N
codigoField.setName("codigoField"); // NOI18N
codigoField.addKeyListener(new java.awt.event.KeyAdapter() {
public void keyPressed(java.awt.event.KeyEvent evt) {
codigoFieldKeyPressed(evt);
}
});
codigoLabel.setFont(new java.awt.Font("Courier New", 0, 12));
codigoLabel.setIcon(new javax.swing.ImageIcon(getClass().getResource("/totalpos/resources/Etiquetas 2x.jpg"))); // NOI18N
codigoLabel.setText("Código");
codigoLabel.setHorizontalTextPosition(javax.swing.SwingConstants.CENTER);
codigoLabel.setName("codigoLabel"); // NOI18N
jLabel2.setFont(new java.awt.Font("Courier New", 0, 12));
jLabel2.setIcon(new javax.swing.ImageIcon(getClass().getResource("/totalpos/resources/Etiquetas 2x.jpg"))); // NOI18N
jLabel2.setText("Modelo");
jLabel2.setHorizontalTextPosition(javax.swing.SwingConstants.CENTER);
jLabel2.setName("jLabel2"); // NOI18N
jLabel3.setFont(new java.awt.Font("Courier New", 0, 12));
jLabel3.setIcon(new javax.swing.ImageIcon(getClass().getResource("/totalpos/resources/Etiquetas 2x.jpg"))); // NOI18N
jLabel3.setText("Descripción");
jLabel3.setHorizontalTextPosition(javax.swing.SwingConstants.CENTER);
jLabel3.setName("jLabel3"); // NOI18N
modeloField.setName("modeloField"); // NOI18N
modeloField.addKeyListener(new java.awt.event.KeyAdapter() {
public void keyPressed(java.awt.event.KeyEvent evt) {
modeloFieldKeyPressed(evt);
}
});
descriptionField.setName("descriptionField"); // NOI18N
descriptionField.addKeyListener(new java.awt.event.KeyAdapter() {
public void keyPressed(java.awt.event.KeyEvent evt) {
descriptionFieldKeyPressed(evt);
}
});
jLabel4.setFont(new java.awt.Font("Courier New", 0, 12));
jLabel4.setIcon(new javax.swing.ImageIcon(getClass().getResource("/totalpos/resources/Etiquetas 2x.jpg"))); // NOI18N
jLabel4.setText("Código de Barra");
jLabel4.setHorizontalTextPosition(javax.swing.SwingConstants.CENTER);
jLabel4.setName("jLabel4"); // NOI18N
barCodeField.setName("barCodeField"); // NOI18N
barCodeField.addKeyListener(new java.awt.event.KeyAdapter() {
public void keyPressed(java.awt.event.KeyEvent evt) {
barCodeFieldKeyPressed(evt);
}
});
javax.swing.GroupLayout filterPanelLayout = new javax.swing.GroupLayout(filterPanel);
filterPanel.setLayout(filterPanelLayout);
filterPanelLayout.setHorizontalGroup(
filterPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(filterPanelLayout.createSequentialGroup()
.addContainerGap()
.addGroup(filterPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
.addComponent(jLabel4, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addComponent(jLabel3, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addComponent(jLabel2, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addComponent(codigoLabel, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addGroup(filterPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(codigoField, javax.swing.GroupLayout.DEFAULT_SIZE, 515, Short.MAX_VALUE)
.addComponent(modeloField, javax.swing.GroupLayout.DEFAULT_SIZE, 515, Short.MAX_VALUE)
.addComponent(descriptionField, javax.swing.GroupLayout.DEFAULT_SIZE, 515, Short.MAX_VALUE)
.addComponent(barCodeField, javax.swing.GroupLayout.DEFAULT_SIZE, 515, Short.MAX_VALUE))
.addContainerGap())
);
filterPanelLayout.setVerticalGroup(
filterPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(filterPanelLayout.createSequentialGroup()
.addGroup(filterPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(filterPanelLayout.createSequentialGroup()
.addComponent(codigoLabel)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(jLabel2)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(jLabel3)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(jLabel4))
.addGroup(filterPanelLayout.createSequentialGroup()
.addComponent(codigoField, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(modeloField, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(descriptionField, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(barCodeField, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)))
.addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
);
imagePanel.setBorder(javax.swing.BorderFactory.createTitledBorder("Foto"));
imagePanel.setName("imagePanel"); // NOI18N
imageLabel.setName("imageLabel"); // NOI18N
imageLabel.addMouseMotionListener(new java.awt.event.MouseMotionAdapter() {
public void mouseMoved(java.awt.event.MouseEvent evt) {
imageLabelMouseMoved(evt);
}
});
javax.swing.GroupLayout imagePanelLayout = new javax.swing.GroupLayout(imagePanel);
imagePanel.setLayout(imagePanelLayout);
imagePanelLayout.setHorizontalGroup(
imagePanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(imageLabel, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.DEFAULT_SIZE, 339, Short.MAX_VALUE)
);
imagePanelLayout.setVerticalGroup(
imagePanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(imageLabel, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.DEFAULT_SIZE, 244, Short.MAX_VALUE)
);
jPanel2.setBorder(javax.swing.BorderFactory.createTitledBorder("Etiquetas"));
jPanel2.setName("jPanel2"); // NOI18N
printLabels.setText("Imprimir");
printLabels.setName("printLabels"); // NOI18N
printLabels.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
printLabelsActionPerformed(evt);
}
});
jScrollPane2.setName("jScrollPane2"); // NOI18N
stickerTable.setFont(new java.awt.Font("Courier New", 0, 11));
stickerTable.setModel(new javax.swing.table.DefaultTableModel(
new Object [][] {
{null, null, null, null},
{null, null, null, null},
{null, null, null, null},
{null, null, null, null}
},
new String [] {
"Código", "Modelo", "Precio Actual", "Cantidad Etiquetas"
}
) {
Class[] types = new Class [] {
java.lang.Object.class, java.lang.Object.class, java.lang.Object.class, java.lang.Integer.class
};
boolean[] canEdit = new boolean [] {
false, false, false, true
};
public Class getColumnClass(int columnIndex) {
return types [columnIndex];
}
public boolean isCellEditable(int rowIndex, int columnIndex) {
return canEdit [columnIndex];
}
});
stickerTable.setToolTipText("Puede cambiar la cantidad editando el campo");
stickerTable.setName("stickerTable"); // NOI18N
stickerTable.setSelectionMode(javax.swing.ListSelectionModel.SINGLE_SELECTION);
stickerTable.addMouseListener(new java.awt.event.MouseAdapter() {
public void mouseClicked(java.awt.event.MouseEvent evt) {
stickerTableMouseClicked(evt);
}
public void mousePressed(java.awt.event.MouseEvent evt) {
stickerTableMousePressed(evt);
}
public void mouseReleased(java.awt.event.MouseEvent evt) {
stickerTableMouseReleased(evt);
}
});
stickerTable.addMouseMotionListener(new java.awt.event.MouseMotionAdapter() {
public void mouseMoved(java.awt.event.MouseEvent evt) {
stickerTableMouseMoved(evt);
}
});
stickerTable.addFocusListener(new java.awt.event.FocusAdapter() {
public void focusLost(java.awt.event.FocusEvent evt) {
stickerTableFocusLost(evt);
}
});
stickerTable.addInputMethodListener(new java.awt.event.InputMethodListener() {
public void caretPositionChanged(java.awt.event.InputMethodEvent evt) {
}
public void inputMethodTextChanged(java.awt.event.InputMethodEvent evt) {
stickerTableInputMethodTextChanged(evt);
}
});
stickerTable.addPropertyChangeListener(new java.beans.PropertyChangeListener() {
public void propertyChange(java.beans.PropertyChangeEvent evt) {
stickerTablePropertyChange(evt);
}
});
stickerTable.addKeyListener(new java.awt.event.KeyAdapter() {
public void keyPressed(java.awt.event.KeyEvent evt) {
stickerTableKeyPressed(evt);
}
});
stickerTable.addVetoableChangeListener(new java.beans.VetoableChangeListener() {
public void vetoableChange(java.beans.PropertyChangeEvent evt)throws java.beans.PropertyVetoException {
stickerTableVetoableChange(evt);
}
});
jScrollPane2.setViewportView(stickerTable);
deleteAll.setText("Eliminar Todas");
deleteAll.setToolTipText("Elimina todas las etiquetas");
deleteAll.setName("deleteAll"); // NOI18N
deleteAll.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
deleteAllActionPerformed(evt);
}
});
deleteItem.setText("Borrar");
deleteItem.setToolTipText("Borra la etiqueta seleccionada");
deleteItem.setName("deleteItem"); // NOI18N
deleteItem.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
deleteItemActionPerformed(evt);
}
});
javax.swing.GroupLayout jPanel2Layout = new javax.swing.GroupLayout(jPanel2);
jPanel2.setLayout(jPanel2Layout);
jPanel2Layout.setHorizontalGroup(
jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(jPanel2Layout.createSequentialGroup()
.addContainerGap()
.addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(jScrollPane2, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.DEFAULT_SIZE, 319, Short.MAX_VALUE)
.addGroup(jPanel2Layout.createSequentialGroup()
.addComponent(deleteAll, javax.swing.GroupLayout.PREFERRED_SIZE, 119, javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(deleteItem, javax.swing.GroupLayout.DEFAULT_SIZE, 101, Short.MAX_VALUE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(printLabels, javax.swing.GroupLayout.PREFERRED_SIZE, 87, javax.swing.GroupLayout.PREFERRED_SIZE)))
.addContainerGap())
);
jPanel2Layout.setVerticalGroup(
jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jPanel2Layout.createSequentialGroup()
.addComponent(jScrollPane2, javax.swing.GroupLayout.PREFERRED_SIZE, 161, javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(printLabels)
.addComponent(deleteAll)
.addComponent(deleteItem))
.addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
);
jPanel3.setBorder(javax.swing.BorderFactory.createTitledBorder("Detalles"));
jPanel3.setName("jPanel3"); // NOI18N
jScrollPane1.setName("jScrollPane1"); // NOI18N
itemTable.setFont(new java.awt.Font("Courier New", 0, 11)); // NOI18N
itemTable.setModel(new javax.swing.table.DefaultTableModel(
new Object [][] {
{null, null, null, null, null, null},
{null, null, null, null, null, null},
{null, null, null, null, null, null},
{null, null, null, null, null, null}
},
new String [] {
"Código", "Descripción", "Modelo", "Precio Venta", "Descuento", "Existencia"
}
) {
boolean[] canEdit = new boolean [] {
false, false, false, false, false, false
};
public boolean isCellEditable(int rowIndex, int columnIndex) {
return canEdit [columnIndex];
}
});
itemTable.setName("itemTable"); // NOI18N
itemTable.setSelectionMode(javax.swing.ListSelectionModel.SINGLE_SELECTION);
itemTable.addMouseListener(new java.awt.event.MouseAdapter() {
public void mouseClicked(java.awt.event.MouseEvent evt) {
itemTableMouseClicked(evt);
}
public void mousePressed(java.awt.event.MouseEvent evt) {
itemTableMousePressed(evt);
}
public void mouseReleased(java.awt.event.MouseEvent evt) {
itemTableMouseReleased(evt);
}
});
itemTable.addMouseMotionListener(new java.awt.event.MouseMotionAdapter() {
public void mouseMoved(java.awt.event.MouseEvent evt) {
itemTableMouseMoved(evt);
}
});
itemTable.addKeyListener(new java.awt.event.KeyAdapter() {
public void keyPressed(java.awt.event.KeyEvent evt) {
itemTableKeyPressed(evt);
}
public void keyReleased(java.awt.event.KeyEvent evt) {
itemTableKeyReleased(evt);
}
});
jScrollPane1.setViewportView(itemTable);
itemTable.getColumnModel().getColumn(1).setPreferredWidth(300);
itemTable.getColumnModel().getColumn(2).setPreferredWidth(50);
itemTable.getColumnModel().getColumn(3).setPreferredWidth(20);
itemTable.getColumnModel().getColumn(4).setPreferredWidth(20);
itemTable.getColumnModel().getColumn(5).setPreferredWidth(20);
addSticker.setText(" F8 / Agregar a las etiquetas");
addSticker.setFocusable(false);
addSticker.setName("addSticker"); // NOI18N
addSticker.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
addStickerActionPerformed(evt);
}
});
addQuant1.setText("F7 / Agregar 1 etiqueta");
addQuant1.setFocusable(false);
addQuant1.setName("addQuant1"); // NOI18N
addQuant1.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
addQuant1ActionPerformed(evt);
}
});
clearFields.setText("F12 / Limpiar Campos");
clearFields.setFocusable(false);
clearFields.setName("clearFields"); // NOI18N
clearFields.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
clearFieldsActionPerformed(evt);
}
});
javax.swing.GroupLayout jPanel3Layout = new javax.swing.GroupLayout(jPanel3);
jPanel3.setLayout(jPanel3Layout);
jPanel3Layout.setHorizontalGroup(
jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jPanel3Layout.createSequentialGroup()
.addContainerGap()
.addGroup(jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
.addComponent(jScrollPane1, javax.swing.GroupLayout.Alignment.LEADING, javax.swing.GroupLayout.DEFAULT_SIZE, 735, Short.MAX_VALUE)
.addGroup(jPanel3Layout.createSequentialGroup()
.addComponent(clearFields, javax.swing.GroupLayout.PREFERRED_SIZE, 170, javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(addQuant1, javax.swing.GroupLayout.PREFERRED_SIZE, 162, javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(addSticker)))
.addContainerGap())
);
jPanel3Layout.setVerticalGroup(
jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jPanel3Layout.createSequentialGroup()
.addContainerGap()
.addComponent(jScrollPane1, javax.swing.GroupLayout.DEFAULT_SIZE, 285, Short.MAX_VALUE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addGroup(jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(addSticker)
.addComponent(addQuant1)
.addComponent(clearFields))
.addContainerGap())
);
javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
getContentPane().setLayout(layout);
layout.setHorizontalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addContainerGap()
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(jLabel1)
.addGroup(layout.createSequentialGroup()
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(filterPanel, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addComponent(jPanel3, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(imagePanel, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addComponent(jPanel2, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))))
.addContainerGap())
);
layout.setVerticalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addContainerGap()
.addComponent(jLabel1)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addComponent(filterPanel, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(jPanel3, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
.addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup()
.addComponent(imagePanel, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(jPanel2, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)))
.addContainerGap())
);
pack();
}// </editor-fold>//GEN-END:initComponents
private void codigoFieldKeyPressed(java.awt.event.KeyEvent evt) {//GEN-FIRST:event_codigoFieldKeyPressed
Shared.getScreenSaver().actioned();
if ( evt.getKeyCode() == KeyEvent.VK_ENTER ){
updateAll();
}else if ( evt.getKeyCode() == KeyEvent.VK_ESCAPE ){
this.dispose();
}else if ( evt.getKeyCode() == KeyEvent.VK_F12 ){
clearFields();
}else if ( evt.getKeyCode() == KeyEvent.VK_F8 ){
addSeveralTickets();
}else if ( evt.getKeyCode() == KeyEvent.VK_F7 ){
add1Quant();
}
}//GEN-LAST:event_codigoFieldKeyPressed
private void modeloFieldKeyPressed(java.awt.event.KeyEvent evt) {//GEN-FIRST:event_modeloFieldKeyPressed
Shared.getScreenSaver().actioned();
if ( evt.getKeyCode() == KeyEvent.VK_ENTER ){
updateAll();
}else if ( evt.getKeyCode() == KeyEvent.VK_ESCAPE ){
this.dispose();
} else if ( evt.getKeyCode() == KeyEvent.VK_F12 ){
clearFields();
}else if ( evt.getKeyCode() == KeyEvent.VK_F8 ){
addSeveralTickets();
}else if ( evt.getKeyCode() == KeyEvent.VK_F7 ){
add1Quant();
}
}//GEN-LAST:event_modeloFieldKeyPressed
private void descriptionFieldKeyPressed(java.awt.event.KeyEvent evt) {//GEN-FIRST:event_descriptionFieldKeyPressed
Shared.getScreenSaver().actioned();
if ( evt.getKeyCode() == KeyEvent.VK_ENTER ){
updateAll();
}else if ( evt.getKeyCode() == KeyEvent.VK_ESCAPE ){
this.dispose();
} else if ( evt.getKeyCode() == KeyEvent.VK_F12 ){
clearFields();
}else if ( evt.getKeyCode() == KeyEvent.VK_F8 ){
addSeveralTickets();
}else if ( evt.getKeyCode() == KeyEvent.VK_F7 ){
add1Quant();
}
}//GEN-LAST:event_descriptionFieldKeyPressed
private void barCodeFieldKeyPressed(java.awt.event.KeyEvent evt) {//GEN-FIRST:event_barCodeFieldKeyPressed
Shared.getScreenSaver().actioned();
if ( evt.getKeyCode() == KeyEvent.VK_ENTER ){
updateAll();
}else if ( evt.getKeyCode() == KeyEvent.VK_ESCAPE ){
this.dispose();
} else if ( evt.getKeyCode() == KeyEvent.VK_F12 ){
clearFields();
}else if ( evt.getKeyCode() == KeyEvent.VK_F8 ){
addSeveralTickets();
}else if ( evt.getKeyCode() == KeyEvent.VK_F7 ){
add1Quant();
}
}//GEN-LAST:event_barCodeFieldKeyPressed
private void itemTableKeyPressed(java.awt.event.KeyEvent evt) {//GEN-FIRST:event_itemTableKeyPressed
Shared.getScreenSaver().actioned();
if ( evt.getKeyCode() == KeyEvent.VK_F7 ){
add1Quant();
}else if ( evt.getKeyCode() == KeyEvent.VK_F12 ){
clearFields();
}else if ( evt.getKeyCode() == KeyEvent.VK_F8 ){
addSeveralTickets();
}else if ( evt.getKeyCode() == KeyEvent.VK_F7 ){
addSeveralTickets();
}
}//GEN-LAST:event_itemTableKeyPressed
private void itemTableMouseClicked(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_itemTableMouseClicked
Shared.getScreenSaver().actioned();
}//GEN-LAST:event_itemTableMouseClicked
private void itemTableMousePressed(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_itemTableMousePressed
Shared.getScreenSaver().actioned();
}//GEN-LAST:event_itemTableMousePressed
private void itemTableMouseReleased(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_itemTableMouseReleased
loadImage();
}//GEN-LAST:event_itemTableMouseReleased
private void printLabelsActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_printLabelsActionPerformed
workingFrame = new Working((JFrame)Shared.getMyMainWindows());
WaitSplash ws = new WaitSplash(this);
Shared.centerFrame(workingFrame);
workingFrame.setVisible(true);
ws.execute();
}//GEN-LAST:event_printLabelsActionPerformed
private void itemTableKeyReleased(java.awt.event.KeyEvent evt) {//GEN-FIRST:event_itemTableKeyReleased
loadImage();
}//GEN-LAST:event_itemTableKeyReleased
private void formMouseMoved(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_formMouseMoved
Shared.getScreenSaver().actioned();
}//GEN-LAST:event_formMouseMoved
private void itemTableMouseMoved(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_itemTableMouseMoved
Shared.getScreenSaver().actioned();
}//GEN-LAST:event_itemTableMouseMoved
private void imageLabelMouseMoved(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_imageLabelMouseMoved
Shared.getScreenSaver().actioned();
}//GEN-LAST:event_imageLabelMouseMoved
private void stickerTableMouseClicked(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_stickerTableMouseClicked
Shared.getScreenSaver().actioned();
}//GEN-LAST:event_stickerTableMouseClicked
private void stickerTableMousePressed(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_stickerTableMousePressed
Shared.getScreenSaver().actioned();
}//GEN-LAST:event_stickerTableMousePressed
private void stickerTableMouseReleased(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_stickerTableMouseReleased
Shared.getScreenSaver().actioned();
}//GEN-LAST:event_stickerTableMouseReleased
private void stickerTableMouseMoved(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_stickerTableMouseMoved
Shared.getScreenSaver().actioned();
}//GEN-LAST:event_stickerTableMouseMoved
private void stickerTableKeyPressed(java.awt.event.KeyEvent evt) {//GEN-FIRST:event_stickerTableKeyPressed
Shared.getScreenSaver().actioned();
DefaultTableModel model = (DefaultTableModel) stickerTable.getModel();
for (int i = 0; i < quantToPrint.size(); i++) {
quantToPrint.set(i, Integer.parseInt((String) model.getValueAt(i, 3)));
}
if ( evt.getKeyChar() == KeyEvent.VK_BACK_SPACE ){
int n = stickerTable.getSelectedRow();
if ( n != -1 ){
model = (DefaultTableModel) stickerTable.getModel();
model.removeRow(n);
toPrint.remove(n);
quantToPrint.remove(n);
}
}
}//GEN-LAST:event_stickerTableKeyPressed
private void addStickerActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_addStickerActionPerformed
addSeveralTickets();
}//GEN-LAST:event_addStickerActionPerformed
private void addSeveralTickets(){
System.out.println("[" + Shared.now() + "] " + this.getClass().getName() + " " + Shared.lineNumber() + " Agregar varias etiquetas");
if ( itemTable.getSelectedRow() != -1 ){
Item item = items.get(itemTable.getSelectedRow());
if ( item.getLastPrice().getQuant() > .0 ){
if ( item.getCurrentStock() <= 0 ){
MessageBox msb = new MessageBox(MessageBox.SGN_IMPORTANT, "No se puede imprimir etiquetas de un producto sin existencia.");
msb.show(this);
}else{
String n = JOptionPane.showInputDialog("Cantidad");
if ( n != null ){
try{
int nn = Integer.parseInt(n);
if ( nn < 0 || nn > item.getCurrentStock() ){
throw new NumberFormatException();
}
toPrint.add(item);
quantToPrint.add(nn);
updateToPrint();
}catch ( NumberFormatException ex){
MessageBox msg = new MessageBox(MessageBox.SGN_DANGER, "Formato del número incorrecto. Debe ser un entero positivo menor o igual a " + item.getCurrentStock() );
msg.show(this);
}
}
}
}else{
MessageBox msb = new MessageBox(MessageBox.SGN_IMPORTANT, "No puede imprimir etiquetas de artículos con costo 0.00");
msb.show(this);
}
}else{
MessageBox msb = new MessageBox(MessageBox.SGN_IMPORTANT, "Debe seleccionar un artículo.");
msb.show(this);
}
codigoField.requestFocus();
}
private void stickerTableInputMethodTextChanged(java.awt.event.InputMethodEvent evt) {//GEN-FIRST:event_stickerTableInputMethodTextChanged
}//GEN-LAST:event_stickerTableInputMethodTextChanged
private void stickerTableVetoableChange(java.beans.PropertyChangeEvent evt)throws java.beans.PropertyVetoException {//GEN-FIRST:event_stickerTableVetoableChange
}//GEN-LAST:event_stickerTableVetoableChange
private void stickerTablePropertyChange(java.beans.PropertyChangeEvent evt) {//GEN-FIRST:event_stickerTablePropertyChange
}//GEN-LAST:event_stickerTablePropertyChange
private void stickerTableFocusLost(java.awt.event.FocusEvent evt) {//GEN-FIRST:event_stickerTableFocusLost
DefaultTableModel model = (DefaultTableModel) stickerTable.getModel();
for (int i = 0; i < quantToPrint.size(); i++) {
quantToPrint.set(i, Integer.parseInt( model.getValueAt(i, 3) + ""));
}
}//GEN-LAST:event_stickerTableFocusLost
private void deleteAllActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_deleteAllActionPerformed
DefaultTableModel model = (DefaultTableModel) stickerTable.getModel();
model.setRowCount(0);
toPrint.clear();
quantToPrint.clear();
}//GEN-LAST:event_deleteAllActionPerformed
private void formComponentResized(java.awt.event.ComponentEvent evt) {//GEN-FIRST:event_formComponentResized
loadImage();
}//GEN-LAST:event_formComponentResized
private void formMouseReleased(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_formMouseReleased
//loadImage();
}//GEN-LAST:event_formMouseReleased
private void deleteItemActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_deleteItemActionPerformed
DefaultTableModel model = (DefaultTableModel) stickerTable.getModel();
int n = stickerTable.getSelectedRow();
if ( n != -1 ){
model = (DefaultTableModel) stickerTable.getModel();
model.removeRow(n);
toPrint.remove(n);
quantToPrint.remove(n);
}
}//GEN-LAST:event_deleteItemActionPerformed
private void clearFieldsActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_clearFieldsActionPerformed
clearFields();
}//GEN-LAST:event_clearFieldsActionPerformed
private void addQuant1ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_addQuant1ActionPerformed
add1Quant();
}//GEN-LAST:event_addQuant1ActionPerformed
private void loadImage(){
if ( itemTable.getSelectedRow() != -1 ){
Item i = items.get(itemTable.getSelectedRow());
Shared.loadPhoto(imageLabel,i.getImageAddr(),Math.max(imagePanel.getWidth()-10,1),getHeight()-360);
imageLabel.setVisible(true);
}
}
// Variables declaration - do not modify//GEN-BEGIN:variables
private javax.swing.JButton addQuant1;
private javax.swing.JButton addSticker;
private javax.swing.JTextField barCodeField;
private javax.swing.JButton clearFields;
private javax.swing.JTextField codigoField;
private javax.swing.JLabel codigoLabel;
private javax.swing.JButton deleteAll;
private javax.swing.JButton deleteItem;
private javax.swing.JTextField descriptionField;
private javax.swing.JPanel filterPanel;
private javax.swing.JLabel imageLabel;
private javax.swing.JPanel imagePanel;
private javax.swing.JTable itemTable;
private javax.swing.JLabel jLabel1;
private javax.swing.JLabel jLabel2;
private javax.swing.JLabel jLabel3;
private javax.swing.JLabel jLabel4;
private javax.swing.JPanel jPanel2;
private javax.swing.JPanel jPanel3;
private javax.swing.JScrollPane jScrollPane1;
private javax.swing.JScrollPane jScrollPane2;
private javax.swing.JTextField modeloField;
private javax.swing.JButton printLabels;
private javax.swing.JTable stickerTable;
// End of variables declaration//GEN-END:variables
private void updateAll() {
System.out.println("[" + Shared.now() + "] " + this.getClass().getName() + " " + Shared.lineNumber() + " Actualizar todo");
updateItems();
updateTable();
updateToPrint();
imageLabel.setVisible(false);
if ( !items.isEmpty() ){
itemTable.setRowSelectionInterval(0, 0);
itemTable.requestFocus();
loadImage();
}
isOk = true;
}
private void updateToPrint() {
DefaultTableModel model = (DefaultTableModel) stickerTable.getModel();
model.setRowCount(0);
for ( int i = 0 ; i < toPrint.size() && i < quantToPrint.size() ; i++ ){
String s[] = {toPrint.get(i).getCode(),toPrint.get(i).getModel(),Shared.df.format(Math.round(toPrint.get(i).getLastPrice().plusIva().withDiscount(toPrint.get(i).getDescuento()).getQuant())),toPrint.get(i).getDescuento()+"", quantToPrint.get(i).toString() };
model.addRow(s);
}
}
@Override
public void doIt() {
System.out.println("[" + Shared.now() + "] " + this.getClass().getName() + " " + Shared.lineNumber() + " Operar");
for ( int i = 0 ; i < stickerTable.getRowCount() ; i++ ){
int n = Integer.parseInt(stickerTable.getValueAt(i, 3)+"");
if ( n <= 0 || n > 500 ){
MessageBox msb = new MessageBox(MessageBox.SGN_IMPORTANT, "La cantidad de etiquetas debe ser positiva y menor a 500");
msb.show(this);
return;
}
}
if ( !toPrint.isEmpty() ){
Item rest = null;
int nRest = 0;
while( !toPrint.isEmpty() ){
Item i = toPrint.get(0);
if ( nRest > 0){
Sticker.print(i,rest);
quantToPrint.set(0, quantToPrint.get(0)-1);
nRest = 0;
}
nRest = quantToPrint.get(0) % 2;
rest = toPrint.get(0);
Sticker.print(i,quantToPrint.get(0)-nRest);
toPrint.remove(0);
quantToPrint.remove(0);
}
if ( nRest > 0 ){
Sticker.print(rest);
}
updateToPrint();
}else{
MessageBox msb = new MessageBox(MessageBox.SGN_IMPORTANT, "Debe seleccionar un artículo y agregarlo a las etiquetas.");
msb.show(this);
}
}
@Override
public void close() {
workingFrame.setVisible(false);
}
private void add1Quant() {
System.out.println("[" + Shared.now() + "] " + this.getClass().getName() + " " + Shared.lineNumber() + " Agregar 1 etiqueta");
if ( itemTable.getSelectedRow() != -1 ){
Item item = items.get(itemTable.getSelectedRow());
if ( item.getLastPrice().getQuant() > .0 ){
if ( item.getCurrentStock() <= 0 ){
MessageBox msb = new MessageBox(MessageBox.SGN_IMPORTANT, "No se puede imprimir etiquetas de un producto sin existencia.");
msb.show(this);
return;
}
toPrint.add(item);
quantToPrint.add(1);
updateToPrint();
}else{
MessageBox msb = new MessageBox(MessageBox.SGN_IMPORTANT, "No puede imprimir etiquetas de artículos con costo 0.00");
msb.show(this);
}
}else{
MessageBox msb = new MessageBox(MessageBox.SGN_IMPORTANT, "Debe seleccionar un artículo.");
msb.show(this);
}
codigoField.requestFocus();
}
private void clearFields(){
System.out.println("[" + Shared.now() + "] " + this.getClass().getName() + " " + Shared.lineNumber() + " Limpiar campos");
barCodeField.setText("");
descriptionField.setText("");
modeloField.setText("");
codigoField.setText("");
codigoField.requestFocus();
}
}